package 笔记.设计模式.单例模式;

/**
 * @author chenhailong
 * @ClassName: Test
 * @Description: 测试 - 单例模式
 * @date 2021/6/27 16:32
 * @Version 1.0
 */
public class Test {

    public static void main(String[] args) {

        LazyMan lazyMan = LazyMan.getLazyMan(); // 懒汉，在需要时创建对象
//           多线程创建对象
        LazyMan lazyMan2 = LazyMan.getLazyMan2(); // 懒汉，在需要时创建对象

        HungryMan hungryMan = HungryMan.getHungryMan();// 饿汉，马上创建对象


        // 枚举的特性不能被反射，只能被虚拟机执行一次构造函数
        HungryMan hungryMan3 = PersonEnum.INSTANCE.getInstance(); // 最安全的枚举单例模式
        HungryMan hungryMan2 = PersonEnum.INSTANCE.getInstance();
        System.out.println(" :" + hungryMan3.equals(hungryMan2));


    }

}

